/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package systole.view.crud.comment;

import systole.exceptions.ExceptionDAO;
import systole.utils.ImageUtils;
import systole.view.crud.controller.ControllerEntityView;
import systole.view.crud.tableModels.CommentTableModel;
import systole.view.messages.EntityDescriptions;
import systole.view.utils.ErrorDialog;

/**
 *
 * @author jmj
 */
public class ControllerCommentView extends ControllerEntityView {

    /**
     * @throws ExceptionDAO
     */
    @SuppressWarnings("unchecked")
    public ControllerCommentView() throws ExceptionDAO {
        super();
        this.entityList = this.facadeDB.getCommentBroker().getAllComments();
        this.tableModel = new CommentTableModel(this.entityList);
        this.entityName = EntityDescriptions.COMMENT;
        this.pluralEntity =EntityDescriptions.COMMENTS;
        this.controllerEntityEdition = new ControllerCommentEdition();
    }

    @Override
    public void refreshList() {
        try {
            this.entityList = this.facadeDB.getCommentBroker().getAllComments();
            this.tableModel.refreshList(this.entityList);
            this.entities.getjTableEntities().setModel(this.tableModel);
        } catch (ExceptionDAO ex) {
            this.facadeDB.refreshSession();
            ErrorDialog.showError(this.entities, ex.getMessage());
        }
        this.entities.getjTableEntities().revalidate();
    }

    @Override
    protected boolean canDeleteEntity() {
        return false;
    }

    @Override
    protected void loadIconOnForm() {
        this.entities.setIconImage(ImageUtils.buildImage("resources/icons/comment/comment16.png"));
        this.entities.getJXEntityHeader().setIcon(ImageUtils.buildIcon("resources/icons/comment/comment32.png"));
    }
}
